package sun.superstring.polymorphism1;

public class Test1 {
    public static void main(String[] args) {
        // 目标：认识多态的代码
        // 1、对象多态,行为多态
        Animal a1 = new Wolf();
        a1.run();  // 方法：编译看左边，运行看右边
        // 当Animal中没有run方法时，编译报错
        // 当运行run方法时，会去Wolf中找run方法运行

        Animal a2 = new Tortoise();
        a2.run();   // 方法：编译看左边，运行看右边


        // 成员变量：编译看左边，运行也看左边
        System.out.println(a1.name);
        System.out.println(a2.name);

        Animal[] animals = {a1, a2};
        for (Animal animal : animals) {
            animal.run(); // 动态绑定，运行时确定调用哪个子类的方法
        }

    }
}
